OLE Excel a formatovani
Otázka od: Koukal Pavel
5. 9. 2002 9:44
Zdravim,
mam jeden mensi problem s kterym bych potreboval pomoc.
Potrebuji v Delphi 4 pomoci OLE objektu excelu naformatovat sloupec, vyber ci
jen jedno pole na ciselny format 0.00
Mam napriklad:
var MyExcel,WS:OleVariant;
...
...
MyExcel:=CreateOleObject('Excel.Application');
MyExcel.Workbooks.Add();
WS:=MyExcel.Activesheet;
...
...
Formatovat jsem se pokousel takto:
1)
WS.Range[A1,A5].NumberFormat:='0.00';
nebo
WS.Cells.Item[1,1].NumberFormat:='0.00';
Pri tomto pokusu dostanu ale tuto chybu:
Neni mozne nastavit vlastnost NumberFormat tridy Range.
2)
WS.Selection.NumberFormat:='0.00';
A po tomto pokusu dostanu tuto hlasku:
Method 'Selection' not supported by automation object.
Proto se vas ptam, zda jste nekdo neco podobneho neresil a kdyz ano, tak jak.
Dekuji.
S pozdravem Pavel Koukal.
Delphi 4, upd. 2, Windows 2000, Office 2000
Odpovedá: Petr Brant
5. 9. 2002 12:11
A nechce to vzhledem k narodnimu nastaveni misto tecky carku? Pouzivam napr.
NewWorkSheet.Columns[FC + 3].NumberFormat:= '# ##0,00';
a funguje to bez problemu.
RNDr. Petr Brant [brant@dcomm.cz]
http://web.redbox.cz/petr.brant
ICQ #68652380
D&COMM s.r.o.
Korunovacni 6
170 00 Praha 7
> Subject: OLE Excel a formatovani
>
>
> Potrebuji v Delphi 4 pomoci OLE objektu excelu naformatovat sloupec, vyber
ci jen jedno pole na ciselny format 0.00
>
> Mam napriklad:
>
> var MyExcel,WS:OleVariant;
> ...
> ...
> MyExcel:=CreateOleObject('Excel.Application');
> MyExcel.Workbooks.Add();
> WS:=MyExcel.Activesheet;
> ...
> ...
>
> Formatovat jsem se pokousel takto:
> 1)
> WS.Range[A1,A5].NumberFormat:='0.00';
> nebo
> WS.Cells.Item[1,1].NumberFormat:='0.00';
>
> Pri tomto pokusu dostanu ale tuto chybu:
> Neni mozne nastavit vlastnost NumberFormat tridy Range.
>
>
> 2)
> WS.Selection.NumberFormat:='0.00';
>
> A po tomto pokusu dostanu tuto hlasku:
> Method 'Selection' not supported by automation object.
>
Odpovedá: Holeček Jan
5. 9. 2002 9:51
Formátuji takto a funguje to:
FWorkSheet.Range['C'+IntToStr(RowBegin),'C'+IntToStr(Row)].NumberFormat := '0';
FWorkSheet.Range['J'+IntToStr(RowBegin),'L'+IntToStr(Row)].NumberFormat :=
'0,00%';
FWorkSheet.Range['M'+IntToStr(RowBegin),'P'+IntToStr(Row)].NumberFormat :=
'# ##0,00';
Honza
Odpovedá: Koukal Pavel
5. 9. 2002 19:12
Moc dekuji - problem vyresen. Staci zamenit tecku za carku a uz neni problem.
Tedy misto '0.00' zadat '0,00' a je po problemu.
Asi by to chtelo dovolenou.
S pozdravem Pavel Koukal.
> Formatuji takto a funguje to:
>
> FWorkSheet.Range['J'+IntToStr(RowBegin),'L'+IntToStr(Row)].Num
> berFormat := '0,00%';
>
> Honza
>
Odpovedá: Hlas
5. 9. 2002 12:57
skus '0.00' nahradit '0,00'
----- Original Message -----
From: "Koukal Pavel" <Pavel.Koukal@pvt.cz>
To: <delphi-l@clexpert.cz>
Sent: Thursday, September 05, 2002 10:39 AM
Subject: OLE Excel a formatovani
Zdravim,
mam jeden mensi problem s kterym bych potreboval pomoc.
Potrebuji v Delphi 4 pomoci OLE objektu excelu naformatovat sloupec, vyber
ci jen jedno pole na ciselny format 0.00
Mam napriklad:
var MyExcel,WS:OleVariant;
...
...
MyExcel:=CreateOleObject('Excel.Application');
MyExcel.Workbooks.Add();
WS:=MyExcel.Activesheet;
...
...
Formatovat jsem se pokousel takto:
1)
WS.Range[A1,A5].NumberFormat:='0.00';
nebo
WS.Cells.Item[1,1].NumberFormat:='0.00';
Pri tomto pokusu dostanu ale tuto chybu:
Neni mozne nastavit vlastnost NumberFormat tridy Range.
2)
WS.Selection.NumberFormat:='0.00';
A po tomto pokusu dostanu tuto hlasku:
Method 'Selection' not supported by automation object.
Proto se vas ptam, zda jste nekdo neco podobneho neresil a kdyz ano, tak
jak.
Dekuji.
S pozdravem Pavel Koukal.
Delphi 4, upd. 2, Windows 2000, Office 2000
Odpovedá: Ing. Jan Dvorak
8. 9. 2002 3:34
Narodni prostredi lze nakonfigurovat tak, ze i v Cesku muze
byt desetinnym oddelovacem tecka. Neporadil by nekdo zpusob
programoveho zjisteni desetinneho oddelovace?
Ing. Jan Dvorak
Moc dekuji - problem vyresen. Staci zamenit tecku za carku a
uz neni problem. Tedy misto '0.00' zadat '0,00' a je po
problemu.
Odpovedá: Jan Sebelík
8. 9. 2002 13:24
> Narodni prostredi lze nakonfigurovat tak, ze i v Cesku muze
> byt desetinnym oddelovacem tecka. Neporadil by nekdo zpusob
> programoveho zjisteni desetinneho oddelovace?
Pokud vsechno funguje, jak ma, po spusteni programu by mel byt desetinny
oddelovac nacten z Windows do promenne DecimalSeparator (myslim unita
SysUtils).
Pak se toto nastaveni da samozrejme programove menit.
Honza
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes.cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 0434 692 569 (0776 347735)
=========================================
Odpovedá: Mgr. Richard Kotrba
8. 9. 2002 22:17
Take je mozne zjistit aktualni oddelovac desetinne casti zavolanim promenne
DecimalSeparator
R.K.
-----Original Message-----
From: delphi-l-owner@clexpert.cz [mailto:delphi-l-owner@clexpert.cz]
Sent: Friday, September 06, 2002 7:41 AM
To: delphi-l@clexpert.cz
Subject: RE: OLE Excel a formatovani
Narodni prostredi lze nakonfigurovat tak, ze i v Cesku muze byt desetinnym
oddelovacem tecka. Neporadil by nekdo zpusob programoveho zjisteni
desetinneho oddelovace?
Ing. Jan Dvorak
Moc dekuji - problem vyresen. Staci zamenit tecku za carku a uz neni
problem. Tedy misto '0.00' zadat '0,00' a je po problemu.